<?php
/**
 * Assign
 *
 * The basic assignment operator is "=". Your first inclination might
 * be to think of this as "equal to". Don't. It really means that the
 * left operand gets set to the value of the expression on the rights
 * (that is, "gets set to"). 
 *
 * @author  Badrus Said <badrus.said@gmail.com>
 * @since   gop1.0
 */
final class gop_Assign extends gop_Base {
    public function execute(gop_Base $_caller = null) {
        if ($this->getReturn()) return;
        $this->setCaller(null);
        $out = $this->getContext()->getCallee($this->out);
        $inp = $this->getContext()->getCallee($this->inp);
        $this->setCaller($_caller);
        $out->assign($inp);
        $this->chainExec();
    }
}
?>